#include<bits/stdc++.h>
using namespace std;
#define all(x) (x).begin(),(x).end()
#define rall(x) (x).rbegin(),(x).rend()
const int N = 2e5 + 10;
#define INF 0x3f3f3f3f;
typedef long long int ll;
#define close(); std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);
//----------------------------------------------------------------------------//
int n, m, x, a[110], st[40]; //st存储那个位置有1的个数
void solve()
{
    memset(st, 0, sizeof st);
    memset(a, 0, sizeof a);

    cin >> n >> m;
    for(int i = 1; i <= n; i++)
    {
        cin >> x;
        for(int j = 0; j <= m - 1; j++) if((x >> j) & 1) st[j]++; //记录某一位1的个数
    }

    int ans = 0;
    for(int i = 0; i <= m - 1; i++) if(st[i] * 2 >= n) ans |= (1 << i);
    cout << ans << '\n';




}

int main()
{
    close();
    int T;
    cin >> T;
    while (T--) solve();
    return 0;
}
//给定a[1,n]，求和它们距离和最小的数字，两个数字的距离是二进制不同位的个数。